﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using GestorDeFlotasDesktop.Classes;
//using System.Data;
using System.Data.SqlClient;


namespace GestorDeFlotasDesktop.Login
{
    
    public partial class frmLogin : Form
    {
        private GestorDeFlotasDesktop.AbmRol.frmAbmUsuario formAbmUsuarios;
        private GestorDeFlotasDesktop.RegistrarViaje.RegistrarViajes formRegistrarViaje;
        private GestorDeFlotasDesktop.AbmRol.frmAbmUsuario frmUsuario;
        public frmLogin()
        {
            InitializeComponent();
        }



        private void callAbmUsuario()
        {
            formAbmUsuarios = new GestorDeFlotasDesktop.AbmRol.frmAbmUsuario();
            //formAbmUsuarios.inicializarAgregar();
            formAbmUsuarios.MdiParent = this.MdiParent;
            formAbmUsuarios.Activate();
            deshabilitarTodo();
            formAbmUsuarios.Show();
        }
        private void callAbmUsuario(GestorDeFlotasDesktop.AbmRol.frmAbmUsuario formAbmUsuarios)
        {
            
            formAbmUsuarios.MdiParent = this.MdiParent;
            formAbmUsuarios.inicializar(txtUsername.Text);

            deshabilitarTodo();
            formAbmUsuarios.Show();
        }
        private void frmLogin_Load(object sender, EventArgs e)
        {

        }
        private bool validarCampos()
        {
            if (txtPassword.Text.Contains(' ') || txtUsername.Text.Contains(' ') || txtPassword.Text == "" || txtUsername.Text == "")
            {
                MessageBox.Show("Debe llenar correctamente los campos","ERROR" , MessageBoxButtons.OK, MessageBoxIcon.Error); 
                return false;
            }
            return true;
        }
        public void habilitarTodo() {
            txtUsername.Enabled = true;
            txtPassword.Enabled = true;
            btnAcceder.Enabled = true;
            btnModificarUsuario.Enabled = true;
        }
        private void deshabilitarTodo() {
            this.Dispose();
        }
        private void mostrarAcciones(Usuario oUsuario)
        {
            frmAcciones frmAcciones = new frmAcciones();
            frmAcciones.MdiParent = this.MdiParent;
            deshabilitarTodo();
            frmAcciones.cargarDatosUsuario(oUsuario);
            frmAcciones.Show();
        }
        private void btnAcceder_Click(object sender, EventArgs e)
        {
            if (validarCampos())
            {

                SqlInterface.Conectar();
                //Usuario oUsuario = new Usuario();
                //oUsuario.strUsername = txtUsername.Text;
                //oUsuario.strPassword = txtPassword.Text;
                List<SqlParameter> ParameterList = new List<SqlParameter>();
                ParameterList.Add(new SqlParameter("@username", txtUsername.Text));
                ParameterList.Add(new SqlParameter("@password", SqlInterface.Encriptar(txtPassword.Text)));
                int resultado = SqlInterface.ExecuteNonQuery("SQUIRTLE.spValidarUsuario", ParameterList);
                if (resultado == 1)
                {
                    //MessageBox.Show("Adentro.");
                    Usuario oUsuario = new Usuario();
                    Usuarios oUsuarios = new Usuarios();
                    oUsuario.strUsername = txtUsername.Text;
                    oUsuario.strPassword = txtPassword.Text;
                    oUsuario.lstRoles = oUsuarios.getRoles(oUsuario.strUsername);
                    mostrarAcciones(oUsuario);
                    deshabilitarTodo();
                }
                else
                {
                    resultado = SqlInterface.SumarErrorLogin(txtUsername.Text);
                    if (resultado == 1)
                        MessageBox.Show("Contraseña incorrecta.");
                    else
                        MessageBox.Show("Usuario bloqueado.");
                    txtPassword.Clear();
                }
                SqlInterface.Desconectar();
            }
            

        }

        private void viajeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            formRegistrarViaje = new GestorDeFlotasDesktop.RegistrarViaje.RegistrarViajes();
            formRegistrarViaje.MdiParent = this.MdiParent;
            formRegistrarViaje.Show();
        }

        private void logoutToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void btnModificarUsuario_Click(object sender, EventArgs e)
        {
            if (validarCampos())
            {
                frmUsuario = new GestorDeFlotasDesktop.AbmRol.frmAbmUsuario();
                callAbmUsuario(frmUsuario);
            }
        }
    }
}
